/**
 * Copyright &copy; 2012-2014 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.costbreakdowm.entity;

import java.util.Date;

import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.thinkgem.jeesite.common.persistence.DataEntity;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;
import com.thinkgem.jeesite.modules.employee.entity.Employee;
import com.thinkgem.jeesite.modules.sys.entity.Office;

/**
 * 雇主其它成本明细Entity
 * @author zxl
 * @version 2017-08-12
 */
public class EmployerCostBreakdown extends DataEntity<EmployerCostBreakdown> {
	
	private static final long serialVersionUID = 1L;
	private Office office;		// 国家id
	private Office company;		// 企业编号
	private Employee emploee;		// 员工编号
	private String genDateStr;		// 统计周期
	private Date genDate;		// 统计时间
	private Double bouns;		// 奖金
	private Double pretaxAdjustment;		// 税前调整
	private Double employeeTax;		// 雇员税
	private Double employerInsurance;		// 雇主保险
	private Double germanyArrears;		// 德国欠薪扣款
	private Double trainingFee;		// 培训费
	private Double tradeUnionTax;		// 工会税
	private Double staffRefundDeposit;		// 员工退还押金
	private Double afterTaxDeduction;		// 税后扣减
	private Double corporateTax;		// 企业税
	private Double employerInsuranceSuper;		// 雇主保险/super
	private Double workcover;		// workcover
	private Double usCommercialInsurance;		// 美国商保
	private Double disabilityGold;		// 残障金
	
	public EmployerCostBreakdown() {
		super();
	}

	public EmployerCostBreakdown(String id){
		super(id);
	}

	@ExcelField(title="国家", align=2, sort=0)
	@NotNull(message="国家id不能为空")
	public Office getOffice() {
		return office;
	}

	public void setOffice(Office office) {
		this.office = office;
	}

	@ExcelField(title="仓库", align=2, sort=1)
	@NotNull(message="企业编号不能为空")
	public Office getCompany() {
		return company;
	}

	public void setCompany(Office company) {
		this.company = company;
	}

	@ExcelField(title="员工编号", align=2, sort=2)
	@NotNull(message="员工编号不能为空")
	public Employee getEmploee() {
		return emploee;
	}

	@ExcelField(title="员工姓名", align=2, sort=3)
	public String getEmploeeName(){
		return  emploee.getName();
	}
	public void setEmploee(Employee emploee) {
		this.emploee = emploee;
	}
	
	@NotNull(message="统计周期不能为空")
	@ExcelField(title="统计周期", align=2, sort=4)
	public String getGenDateStr() {
		return genDateStr;
	}

	public void setGenDateStr(String genDateStr) {
		this.genDateStr = genDateStr;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="统计时间不能为空")
	public Date getGenDate() {
		return genDate;
	}

	public void setGenDate(Date genDate) {
		this.genDate = genDate;
	}
	
	@NotNull(message="奖金不能为空")
	@ExcelField(title="奖金", align=2, sort=5)
	public Double getBouns() {
		return bouns;
	}

	public void setBouns(Double bouns) {
		this.bouns = bouns;
	}
	
	@NotNull(message="税前调整不能为空")
	@ExcelField(title="税前调整", align=2, sort=6)
	public Double getPretaxAdjustment() {
		return pretaxAdjustment;
	}

	public void setPretaxAdjustment(Double pretaxAdjustment) {
		this.pretaxAdjustment = pretaxAdjustment;
	}
	
	@NotNull(message="雇员税不能为空")
	@ExcelField(title="雇员税", align=2, sort=7)
	public Double getEmployeeTax() {
		return employeeTax;
	}

	public void setEmployeeTax(Double employeeTax) {
		this.employeeTax = employeeTax;
	}
	
	@NotNull(message="雇主保险不能为空")
	@ExcelField(title="雇主保险", align=2, sort=8)
	public Double getEmployerInsurance() {
		return employerInsurance;
	}

	public void setEmployerInsurance(Double employerInsurance) {
		this.employerInsurance = employerInsurance;
	}
	
	@NotNull(message="德国欠薪扣款不能为空")
	@ExcelField(title="德国欠薪扣款", align=2, sort=9)
	public Double getGermanyArrears() {
		return germanyArrears;
	}

	public void setGermanyArrears(Double germanyArrears) {
		this.germanyArrears = germanyArrears;
	}
	
	@NotNull(message="培训费不能为空")
	@ExcelField(title="培训费", align=2, sort=10)
	public Double getTrainingFee() {
		return trainingFee;
	}

	public void setTrainingFee(Double trainingFee) {
		this.trainingFee = trainingFee;
	}
	
	@NotNull(message="工会税不能为空")
	@ExcelField(title="工会税", align=2, sort=11)
	public Double getTradeUnionTax() {
		return tradeUnionTax;
	}

	public void setTradeUnionTax(Double tradeUnionTax) {
		this.tradeUnionTax = tradeUnionTax;
	}
	
	@NotNull(message="员工退还押金不能为空")
	@ExcelField(title="员工退还押金", align=2, sort=12)
	public Double getStaffRefundDeposit() {
		return staffRefundDeposit;
	}

	public void setStaffRefundDeposit(Double staffRefundDeposit) {
		this.staffRefundDeposit = staffRefundDeposit;
	}
	
	@NotNull(message="税后扣减不能为空")
	@ExcelField(title="税后扣减", align=2, sort=13)
	public Double getAfterTaxDeduction() {
		return afterTaxDeduction;
	}

	public void setAfterTaxDeduction(Double afterTaxDeduction) {
		this.afterTaxDeduction = afterTaxDeduction;
	}
	
	@NotNull(message="企业税不能为空")
	@ExcelField(title="企业税", align=2, sort=14)
	public Double getCorporateTax() {
		return corporateTax;
	}

	public void setCorporateTax(Double corporateTax) {
		this.corporateTax = corporateTax;
	}
	
	@NotNull(message="雇主保险/super不能为空")
	@ExcelField(title="雇主保险/super", align=2, sort=15)
	public Double getEmployerInsuranceSuper() {
		return employerInsuranceSuper;
	}

	public void setEmployerInsuranceSuper(Double employerInsuranceSuper) {
		this.employerInsuranceSuper = employerInsuranceSuper;
	}
	
	@NotNull(message="workcover不能为空")
	@ExcelField(title="workcover", align=2, sort=16)
	public Double getWorkcover() {
		return workcover;
	}

	public void setWorkcover(Double workcover) {
		this.workcover = workcover;
	}
	
	@NotNull(message="美国商保不能为空")
	@ExcelField(title="美国商保", align=2, sort=17)
	public Double getUsCommercialInsurance() {
		return usCommercialInsurance;
	}

	public void setUsCommercialInsurance(Double usCommercialInsurance) {
		this.usCommercialInsurance = usCommercialInsurance;
	}
	
	@NotNull(message="残障金不能为空")
	@ExcelField(title="残障金", align=2, sort=17)
	public Double getDisabilityGold() {
		return disabilityGold;
	}

	public void setDisabilityGold(Double disabilityGold) {
		this.disabilityGold = disabilityGold;
	}
	
}